package com.example.web.mapper;

import com.example.web.entity.Dictionary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 字典数据访问接口
 */
@Mapper
public interface DictionaryMapper {
    
    /**
     * 查询字典列表（分页）
     */
    List<Dictionary> selectList(@Param("dictType") String dictType, 
                               @Param("dictName") String dictName,
                               @Param("offset") int offset, 
                               @Param("size") int size);
    
    /**
     * 查询字典总数
     */
    int selectCount(@Param("dictType") String dictType, 
                   @Param("dictName") String dictName);
    
    /**
     * 根据ID查询字典
     */
    Dictionary selectById(@Param("id") Long id);
    
    /**
     * 根据字典类型查询字典列表
     */
    List<Dictionary> selectByType(@Param("dictType") String dictType);
    
    /**
     * 插入字典
     */
    int insert(Dictionary dictionary);
    
    /**
     * 更新字典
     */
    int updateById(Dictionary dictionary);
    
    /**
     * 删除字典
     */
    int deleteById(@Param("id") Long id);
    
    /**
     * 检查字典编码是否存在
     */
    int checkCodeExists(@Param("dictCode") String dictCode, @Param("excludeId") Long excludeId);
    
    /**
     * 删除所有字典数据
     */
    int deleteAll();
}